编程的战术性技巧可以有很多,但比这些技巧更高一个层面的根本性原则不会太多。这里Joshua Bloch提了两条。
对一段程序来讲,比能运行更重要的是 能让人看懂 。工程级的代码,尤其如此。
一定要记住,程序里的每一个字符,包括变量名称,方法名称,参数名称,都是比注解更加有力的描述程序行为的工具。
人的智力是有限的。要能处理大量的代码,唯一的方法编写模块化的代码。在同一时刻只关注其中的一个模块。
DRY (don’t repeat yourself) 原则是一个专业程序员的基本素养。不要拷贝代码,而是重用已有代码。
模块的粒度应该以重用的灵活性为指导原则。不能一味地追求小,但一个基本的客观规律是:比较小的模块更灵活,更容易重用。我们必须尊重客观规律办事。
一个设计良好的模块的客观标准就是:可以随意组合,即插即用。一个很好用的给模块解耦的技术叫做:控制反转(IoC, Inversion of Control)。这是极少数的比大部分设计模式都重要的设计原则。